package com.ax.base.common.service;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.ax.base.common.domain.BaseDoctor;
import com.ax.base.common.domain.BasePharmacist;
import com.ax.base.common.domain.Tree;
import com.ax.base.common.utils.PageUtils;
import com.ax.base.system.domain.MenuDO;

@Service
public interface DoctorPharmacistService {

	/**
	 * 查看医生详情(模块:医生呈现，医生详情*查询某科室下面的医生)
	 * 
	 * @param Map<String, Object> map
	 *           
	 * @return PageUtils
	 */
	public List<BaseDoctor> queryBaseDoctorSer(Map<String, Object> params);
	
	/**
	 * 查看药师详情(模块:药师，药师详情)
	 * 
	 * @param BasePharmacist basePharmacist
	 *           
	 * @return PageUtils
	 */
	public List<BasePharmacist> queryBasePharmacistSer(Map<String, Object> params);
	
	/**
	 * 查看药师详情(修改)
	 * 
	 * @param Long id
	 *           
	 * @return SUCC
	 */
	public BasePharmacist getPharmacistSer(Long id);
	
	/**
	 * 修改医生详情(模块:医生)
	 * 
	 * @param BaseDoctor baseDoctor
	 *           
	 * @return SUCC
	 */
	public void updateBaseDoctorSer(BaseDoctor baseDoctor);
	
	/**
	 * 组织机构树
	 */
	public Tree<MenuDO> queryorgtreeSer();
	
	/**
	 * 新增药师详情(模块:药师)
	 * 
	 * @param BasePharmacist basePharmacist
	 *           
	 * @return SUCC
	 */
	public void insertBasePharmacistSer(Map<String,Object> params,BasePharmacist basePharmacist);
	
	/**
	 * 修改药师详情(模块:药师)
	 * 
	 * @param BasePharmacist basePharmacist
	 *           
	 * @return SUCC
	 */
	public void updateBasePharmacistSer(Map<String,Object> params);
	
	/**
	 * 组织机构树(编辑)
	 */
	public Tree<MenuDO> getTree(Long orgId);
	
	/**
	 * 新增医生详情(模块:医生)
	 * 
	 * @param BaseDoctor baseDoctor
	 *           
	 * @return SUCC
	 */
	public void insertBaseDoctorSer(BaseDoctor baseDoctor);
	
	/**
	 * 查看医师详情(修改)
	 * 
	 * @param Long id
	 *           
	 * @return SUCC
	 */
	public BaseDoctor getDoctorSer(Long id);
	
	/**
	 * 医生是否重复(新增)
	 * 
	 * @param Map<String,Object> map
	 *         
	 * @return boolean
	 */
	public boolean doctorValidateSer(Map<String,Object> map);
	
	/**
	 * 医生是否重复(修改)
	 * 
	 * @param Map<String,Object> map
	 *         
	 * @return boolean
	 */
	public boolean updateDoctorValidateSer(String parameter);
	
	/**
	 * 药师是否重复(新增)
	 * 
	 * @param Map<String,Object> map
	 *         
	 * @return boolean
	 */
	public boolean pharmacistValidateSer(Map<String,Object> map);
	
	/**
	 * 药师是否重复(修改)
	 * 
	 * @param Map<String,Object> map
	 *         
	 * @return boolean
	 */
	public boolean updatePharmacistValidateSer(String parameter);
}
